Turn architecture for routing resources in a field programmable gate array

ABSTRACT

An FPGA architecture has top, middle and low levels. The top level of the architecture is an array of the B16×16 tiles arranged in a rectangular array and enclosed by I/O blocks on the periphery. A B16×16 tile in the middle level of hierarchy is a sixteen by sixteen array of B 1  blocks. The B16×16 tile is a nesting of a B2×2 tile that includes a two by two array of four B 1  blocks. The routing resources in the middle level of hierarchy are expressway routing channels M 1 , M 2 , and M 3  including groups of interconnect conductors. The expressway routing channels M 1 , M 2 , and M 3  are segmented, and between each of the segments in the expressway routing channels M 1 , M 2 , and M 3  are disposed extensions that can extend the expressway routing channel M 1 , M 2 , or M 3  an identical distance along the same direction. The expressway routing channels M 1 , M 2 , and M 3  run both vertically through every column and horizontally through every row of B2×2 tiles. At the intersections of each of the expressway routing channels M 1 , M 2 , and M 3  in the horizontal direction with the expressway routing channels M 1 , M 2  and M 3  in the vertical direction is an expressway turn (E-turn) disposed at the center of each B2×2 tile. An E-turn is a passive device that includes a matrix of reprogrammable switches. The reprogrammable switches are preferably a pass device controlled by an SRAM bit. The interconnect conductors in the expressway routing channels M 1 , M 2  and M 3  that are fed into an E-turn may be coupled to many of the other interconnect conductors in the expressway routing channels M 1 , M 2  and M 3  that come into the E-turn by the programmable switches. Further, the interconnect conductors in the expressway routing channels M 1 , M 2  and M 3  that are fed into an E-turn continue in the same direction through the E-turn, even though the interconnect conductors are coupled to other interconnect conductors by the reprogrammable switches.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.09/519,312, filed Mar. 6, 2000 now U.S Pat. No. 6,636,930.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a field programmable gate array (FPGA)architecture. More particularly, the present invention relates tostructures for coupling routing resources to one another in an FPGAarchitecture.

2. The Background Art

In the FPGA art, both antifuse based programmable architectures and SRAMbased rerogrammable architectures are well known. In an FPGA, the logicelements in the gate array are connected together by routing resourcesto form a desired integrated circuit. The routing resources areconnected to each other and to the logic elements in the gate array byprogrammable elements. In a antifuse based device, the number of theprogrammable elements far exceeds the number of elements in an SRAMbased device because the area required for an antifuse is much smallerthan an SRAM bit. Despite this space disadvantage of an SRAM baseddevice, SRAM based devices are implemented because they arereprogrammble, whereas an antifuse device is presently one-timeprogrammable.

Due to the area required for an SRAM bit, a reprogrammble SRAM bitcannot be provided to connect routing resources to each other and thelogic elements at every desired location. The selection of only alimited number of locations for connecting the routing resources withone another and the logic elements is termed “depopulation”. Because thecapability to place and route a wide variety of circuits in an FPGAdepends upon the availability of routing and logic resources, theselection of the locations at which the programmable elements should bemade with great care.

Some of the difficulties faced in the place and route caused bydepopulation may be alleviated by creating symmetries in the FPGA. Forexample, look-up tables (LUT) are often employed at the logic level inan SRAM based FPGA, because a LUT has perfect symmetry among its inputs.The need for greater symmetry in a reprogrammable FPGA architecture doesnot end with the use of look-up tables. It also extends to the manner inwhich routing resources are connected together and the manner in whichrouting resources are connected to the logic elements. Without a highdegree of symmetry in the architecture, the SRAM memory bit depopulationmakes the place and route of nets in an SRAM based FPGA difficult.

It is therefore an object of the present invention to provide structuresfor connecting the routing resources in an FPGA to one another toimprove the symmetry in the FPGA architecture.

BRIEF DESCRIPTION OF THE INVENTION

The present invention is directed to aspects of a semi-hierarchicalarchitecture in an FPGA having top, middle and low levels. The FPGAarchitecture has structures for connecting the routing resources in theFPGA to one another and to the logic resources to improve the symmetryof the FPGA architecture and thereby increase the place and routabilityof an FPGA.

The top level of the architecture is an array of the B16×16 tilesarranged in a rectangular array and enclosed by I/O blocks on theperiphery. On each of the four sides of a B16×16 tile, and alsoassociated with each of the I/O blocks is a freeway routing channel. Thewidth freeway routing channel in the rectangular array can be changed toaccommodate different numbers of B16×16 tiles without disturbing theinternal structure of the B16×16 tiles. The freeway routing channels canbe extended in any combination of directions at each end by a freewayturn matrix (F-turn).

A B16×16 tile in the middle level of hierarchy is a sixteen by sixteenarray of B1 blocks. The B16×16 tile is a nesting of a B2×2 tile thatincludes a two by two array of four B1 blocks. The B2×2 tiles arestepped into a four by four array of sixteen B1 blocks in a B4×4 tile,and the B4×4 tiles are stepped into a eight by eight array of sixty-fourB1 blocks in a B8×8 tile. A B16×16 tile includes four B8×8 tiles.

The routing resources in the middle level of hierarchy are expresswayrouting channels M1, M2, and M3 including groups of interconnectconductors. The expressway routing channels M1, M2, and M3 aresegmented, and between each of the segments in the expressway routingchannels M1, M2, and M3 are disposed extensions that can extend theexpressway routing channel M1, M2, or M3 an identical distance along thesame direction. The segments of an M3 expressway routing channel isextended at the boundary of a B16×16 tile where an expressway routingchannel M3 crosses a freeway routing channel by an F-tab, and otherwiseby an M3 extension.

The expressway routing channels M1, M2, and M3 run both verticallythrough every column and horizontally through every row of B2×2 tiles.At the intersections of each of the expressway routing channels M1, M2,and M3 in the horizontal direction with the expressway routing channelsM1, M2 and M3 in the vertical direction is an expressway turn (E-turn)disposed at the center of each B2×2 tile.

An E-turn is a passive device that includes a matrix of rerogrammableswitches. The reprogrammable switches are preferably a pass devicecontrolled by an SRAM bit. The interconnect conductors in the expresswayrouting channels M1, M2 and M3 that are fed into an E-turn may becoupled to many of the other interconnect conductors in the expresswayrouting channels M1, M2 and M3 that come into the E-turn by theprogrammable switches. Further, the interconnect conductors in theexpressway routing channels M1, M2 and M3 that are fed into an E-turncontinue in the same direction through the E-turn, even though theinterconnect conductors are coupled to other interconnect conductors bythe reprogrammable switches.

At the lowest level of the semi-hierarchical FPGA architecture, thereare block connect (BC) routing channels, local mesh (LM) routingchannels, and direct connect (DC) interconnect conductors.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of the floor plan of an FPGA including the toplevel of a semi-hierarchical architecture according to the presentinvention.

FIG. 2 is a block diagram of a B16×16 tile in an FPGA and the associatedrouting resources in the middle level of a semi-hierarchicalarchitecture according to the present invention.

FIG. 3 is a block diagram of a B2×2 tile in an FPGA and the connectionof the routing resources in the lowest level to the middle level of asemi-hierarchical architecture according to the present invention.

FIG. 4 is a block diagram of a B2×2 tile in an FPGA and the routingresources in the lowest level of a semi-hierarchical architectureaccording to the present invention.

FIG. 5 is a block diagram of a B1 block in an FPGA and the routingresources in the lowest level of a semi-hierarchical architectureaccording to the present invention.

FIG. 6 illustrates the coupling of BC routing channels to a E-tabaccording to the present invention.

FIG. 7 illustrates a block diagram of an E-turn according to the presentinvention.

FIG. 8 illustrates a preferred embodiment of an E-turn 34 according tothe present invention.

FIGS. 9A, 9B, and 9C illustrate the populated locations for D−1, D+3,and D3×3 matrices, respectively, according to the present invention.

FIG. 10 illustrates the populated locations for an H matrix according tothe present invention.

FIG. 11 is an illustration of the E-turn shown in FIG. 8 with all of thereprogrammable elements indicated by solid, dark squares according tothe present invention.

FIGS. 12A-12E illustrate alternative E-turn reprogrammable elementpopulation patterns suitable for use according to the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

Those of ordinary skill in the art will realize that the followingdescription of the present invention is illustrative only and not in anyway limiting. Other embodiments of the invention will readily suggestthemselves to such skilled persons.

The present invention is directed to aspects of a semi-hierarchicalarchitecture implemented in an FPGA having top, middle and low levels.In a semi-hierarchical architecture according to the present invention,the three levels of the architecture may be coupled to one another as ina hierarchy or the routing resources in each of the three levels may beextended to similar architectural groups in the same level of thearchitecture. The semi-hierarchical nature of the FPGA architectureaccording to the present invention significantly improves the place androute of nets or circuits in the lowest level of the architecture and inthe connection of these nets to higher levels in the semi-hierarchicalarchitecture. To better understand the present invention, a descriptionof the three levels of the semi-hierarchical architecture is madeherein.

Turning now to FIG. 1 a block diagram of the floor plan of an FPGA 10according to the present invention including the top level of thesemi-hierarchical architecture is illustrated. The top level of thearchitecture is an array of the B16×16 tiles 12 arranged in arectangular array and enclosed by I/O blocks 14 on the periphery and theassociated routing resources. A B16×16 tile 12 is a sixteen by sixteenarray of B1 blocks. As will be described in detail below, a B16×16 tile12 and its associated routing resources represents the middle level inthe semi-hierarchical architecture, and a B1 block and its associatedrouting resources represents the lowest level in the semi-hierarchicalarchitecture.

On each of the four sides of a B16×16 tile 12, and also associated witheach of the I/O blocks 14 is freeway routing channel 16. The coupling ofa freeway routing channel 16 to the routing resources in the middlelevel of the semi-hierarchical architecture will be described in greaterdetail below. From FIG. 1, it should be appreciated that on each side ofa B16×16 tile 12 there are two freeway routing channels 16, either as aresult of the disposition of two freeway routing channels 16 betweenadjacent B16×16 tiles 12 or as a result of the disposition of twofreeway routing channels between a B16×16 tile 12 and an adjacent I/Oblock 14.

It should be appreciated that the number of B16×16 tiles 12 in therectangular array may be fewer or greater than the four shown in FIG. 1.According to the present invention, it is presently contemplated thatthe width of a freeway routing channel 16 in the rectangular array canbe changed to accommodate different numbers of B16×16 tiles 12 withoutdisturbing the internal structure of the B16×16 tiles 12. In thismanner, the floorplan of the FPGA 10 can readily be custom sized byincluding the desired number of B16×16 tiles 12 in the design.

The freeway routing channels 16 can be extended in any combination ofdirections at each end by a freeway turn matrix (F-turn) 18. An F-turn18 is an active device that includes tri-state buffers and a matrix ofreprogrammable switches. The reprogrammable switches are preferably passdevices controlled by a SRAM bit. The interconnect conductors in thefreeway routing channels 16 that are fed into an F-turn 18 may becoupled to many of the other interconnect conductors in the freewayrouting channels 16 that come into the F-turn 18 by the reprogrammableswitches.

To avoid overcomplicating the disclosure and thereby obscuring thepresent invention, an F-turn 18 is not described in detail herein. Animplementation of an F-turn 18 suitable for use according to the presentinvention is disclosed in U.S. patent application Ser. No. 09/519,082,filed Mar. 6, 2000, now abandoned, and hereby incorporated by reference.

The freeway routing channels 16 along with the F-turns 18 form a coursemesh. A freeway routing channel 16 will very rarely be utilized all byitself without any extension, since such distances are abundantlycovered by the routing resources in the middle hierarchy to be describedbelow. A freeway routing channel 16 is primarily intended to be used inconjunction with one or more other freeway routing channel 16 in anydirection that together can span a distances of two or more B16×16 tiles12.

In FIG. 2, a block diagram of a B16×16 tile 12 and the associatedrouting resources in the middle level of hierarchy is illustrated. TheB16×16 tile 12 is a sixteen by sixteen array of B1 blocks 20. To avoidovercomplicating the drawing figure, only the B1 blocks 20 in a singlerow and a single column are indicated by the reference numeral 20. TheB16×16 tile 12 is based on the repetition and nesting of smallergroupings (tiles) of B1 blocks 20. The smallest tile that is directlyreplicated and stepped is a B2×2 tile 22 which includes a two by twoarray of four B1 blocks 20. The B2×2 tiles 22 are stepped into a four byfour array of sixteen B1 blocks 20 in a B4×4 tile 24, and the B4×4 tiles24 are stepped into a eight by eight array of sixty-four B1 blocks 20 ina B8×8 tile 26. A B16×16 tile 12 includes four B8×8 tiles 26.

Though not depicted in FIG. 2, the B16×16 tile 12 further includes ablock of user assignable static random access memory (SRAM) disposedbetween the two upper B8×8 tiles 26, and a block of user assignable SRAMdisposed between the two lower B8×8 tiles 26.

The routing resources in the middle level of hierarchy are termedexpressway routing channels. There are three types of expressway routingchannels, namely M1, M2, and M3. In FIG. 2, only a single row and asingle column of expressway routing channels M1, M2, and M3 aredenominated to avoid overcomplicating the drawing figure. In a preferredembodiment of the present invention, there is a single group of nineinterconnect conductors in an M1 expressway routing channel, two groupsof nine interconnect conductors in an M2 expressway routing channel, andsix groups of nine interconnect conductors in an M3 expressway routingchannel.

The expressway routing channels M1, M2, and M3 are segmented so thateach expressway routing channel M1, M2, and M3 spans a distance of aB2×2 tile 22, a B4×4 tile 24, and a B8×8 tile 26, respectively. Betweeneach of the segments in the expressway routing channels M1, M2, and M3are disposed extensions that can extend the expressway routing channelM1, M2, or M3 an identical distance along the same direction.

The extensions 28 that couple the segments in the expressway routingchannels M1 and M2 are passive reprogrammable elements that arepreferably a pass device controlled by an SRAM bit. The extensions 28provide a one-to-one coupling between the interconnect conductors of theexpressway routing channels M1 and M2 on either side of the extensions28. To avoid overcomplicating the drawing figure, only the extensions 28in a single row and a single column are indicated by the referencenumeral 28.

The segments of an M3 expressway routing channel is extended at theboundary of a B16×16 tile 12 where an expressway routing channel M3crosses a freeway routing channel 16 by a freeway tab (F-tab) 30, andotherwise by an M3 extension 32. To avoid overcomplicating the drawingfigure, only the F-tabs 30, and M3 extensions 32 in a single row and asingle column are indicated by the reference numeral 30 and 32,respectively.

An F-tab 30 is an active device that includes tri-state buffers and amatrix of reprogrammable switches. The reprogrammable switches arepreferably a pass device controlled by an SRAM bit. The interconnectconductors in the freeway routing channels 16 and the expressway routingchannel M3 that are fed into an F-tab 30 may be coupled to many of theother interconnect conductors in the freeway routing channels 16 and theexpressway routing channel M3 that come into the F-tab 30 by theprogrammable switches. Further, the interconnect conductors in thefreeway routing channels 16 and the expressway routing channel M3 thatare fed into an F-tab 30 continue in the same direction through theF-tab 30, even though the interconnect conductors are coupled to otherinterconnect conductors by the reprogrammable switches.

Accordingly, an F-tab 30 implements the dual role of providing anextension of the middle level routing resources in a B16×16 tile 12 tothe middle level routing resources in an adjacent B16×16 tile 12 andproviding access between the middle level routing resources of B16×16tile 12 and a freeway routing channel 16 in the highest level of thearchitecture. An F-tab 30 can combine the two roles of access andextension simultaneously in the formation of a single net.

To avoid overcomplicating the disclosure and thereby obscuring thepresent invention, an F-tab 30 is not described in detail herein. Animplementation of an F-tab 30 suitable for use according to the presentinvention is disclosed in U.S. patent application Ser. No. 09/519,082,filed Mar. 6, 2000, now abandoned, and hereby incorporated by reference.

An M3 extension 32 is an active device that includes tristatable bufferscoupled to a matrix of reprogrammable switches. The reprogrammableswitches are preferably a pass device controlled by an SRAM bit. Theinterconnect conductors in the expressway routing channel M3 that arefed into an M3 extension 32 may be coupled by the reprogrammableswitches to many of the other interconnect conductors in the expresswayrouting channel M3 that come into the M3 extension 32. An M3 extension32 according to a preferred embodiment of the present invention isdescribed in greater detail below.

To avoid overcomplicating the disclosure and thereby obscuring thepresent invention, an M3 extension 32 is not described in detail herein.An implementation of an M3 extension 32 suitable for use according tothe present invention is disclosed in U.S. patent application Ser. No.09/519,082, filed Mar. 6, 2000, now abandoned, hereby incorporated byreference.

As depicted in FIG. 2, all of the expressway routing channels M1, M2,and M3 run both vertically through every column and horizontally throughevery row of B2×2 tiles 22. At the intersections of each of theexpressway routing channels M1, M2, and M3 in the horizontal directionwith the expressway routing channels M1, M2 and M3 in the verticaldirection is an expressway turn (E-turn) 34 disposed at the center ofeach B2×2 tile 22. To avoid overcomplicating the drawing figure, onlythe E-turns 34 disposed in the B2×2 tiles 22 in a single row and asingle column are indicated by the reference numeral 34.

An E-turn 34 is a passive device that includes a matrix ofreprogrammable switches. The reprogrammable switches are preferably apass device controlled by an SRAM bit. The interconnect conductors inthe expressway routing channels M1, M2 and M3 that are fed into anE-turn 34 may be coupled to many of the other interconnect conductors inthe expressway routing channels M1, M2 and M3 that come into the E-turn30 by the programmable switches. Further, the interconnect conductors inthe expressway routing channels M1, M2 and M3 that are fed into anE-turn 34 continue in the same direction through the E-turn 34, eventhough the interconnect conductors are coupled to other interconnectconductors by the reprogrammable switches. An E-turn 34 according to thepresent invention is described in greater detail below.

At the lowest level of the semi-hierarchical FPGA architecture, thereare three types of routing resources, block connect (BC) routingchannels, local mesh (LM) routing channels, and direct connect (DC)interconnect conductors. According to a preferred embodiment of thepresent invention, there are nine interconnect conductors in each BCrouting channel and six interconnect conductors in each LM routingchannel. Of these three, the BC routing channels serve the dual purposeof being able to both couple B1 blocks 20 together at the lowest levelin the architecture, and also provide access to the expressway routingchannels M1, M2, and M3 in the middle level of the architecture. In FIG.3 aspects of the BC routing channels will be described, and in FIG. 4aspects of the LM routing channels and the DC interconnect conductorswill be described.

Turning now to FIG. 3, a B2×2 tile 22 including four B1 blocks 20 isillustrated. Associated with each of the B1 blocks 20 is a horizontal BCrouting channel 50-1 and a vertical BC routing channel 50-2. Eachhorizontal BC routing channel 50-1 and vertical BC routing channel 50-2is coupled to an expressway tabs (E-tab) 52 to provide access for eachB1 block 20 to the vertical and horizontal expressway routing channelsM1, M2, and M3, respectively.

An E-tab 52 is an active device that includes tri-state buffers and amatrix of reprogrammable switches. The reprogrammable switches arepreferably a pass device controlled by an SRAM bit. The interconnectconductors in the BC routing channels 50 and the expressway routingchannels M1, M2, and M3 that are fed into an E-tab 52 may be coupled bythe programmable switches to many of the other interconnect conductorsin the expressway routing channels M1, M2, and M3 that come into theE-tab 52. Further, the expressway routing channels M1, M2, an E-tab 52continue in the same direction through the E-tab 52, even through theinterconnect conductors are coupled to other interconnect conductors bythe reprogrammable switches.

At the E-tabs 52, the signals provided on the BC routing channels 50 canconnect to any of the expressway routing channels M1, M2, or M3. Once asignal emanating from a B1 block 20 has been placed on an expresswayrouting channel M1, M2 or M3 and traversed a selected distance, an E-tab52 is employed to direct that signal onto a horizontal or vertical BCrouting channel 50-1 or 50-2 into a B1 block 20 at a selected distancefrom the B1 block 20 from which the signal originated. As the connectionbetween the routing resources at the lowest level in the architectureand the routing resources in the middle level of the architecture, theE-tabs 52 provide that the place and route of signals both inside andoutside the B1 blocks 20 may be implemented independently from oneanother.

To avoid overcomplicating the disclosure and thereby obscuring thepresent invention, an E-tab 52 is not described in detail herein. Animplementation of an E-tab 52 suitable for use according to the presentinvention is disclosed in U.S. patent application Ser. No. 09/519,081,filed Mar. 6, 2000, now issued as U.S. Pat. No. 6,567,968, and herebyincorporated by reference.

In FIG. 4, the expressway routing channels M1, M2, and M3 and the E-turn34 have been omitted for clarity. As further depicted in FIG. 4, inaddition to the horizontal and vertical BC routing channels 50-1 and50-2 associated with each B1 block 20, there are also associated witheach B1 block 20 four LM routing channels 54-1 through 54-4 and firstand second DC interconnect conductors 56-1 and 56-2. The BC routingchannels 50, the LM routing channels 54, and the DC interconnectconductors 56 provide significantly better performance than a stricthierarchy, and further help avoid congesting the expressway routingchannels M1, M2, and M3. The BC routing channels 50 and the LM routingchannels 54 combine to form two meshes. One is a mesh connection withina B1 block 20, and a second is a mesh connection between B1 blocks 20.

The BC routing channels 50 provide portions of the two meshes. Theportion of the mesh connection within a B1 block 20 is described below.In the portion of the mesh providing connection between adjacent B1blocks 20, each horizontal and vertical BC routing channel 50-1 and 50-2share an E-tab 52 with a horizontal or vertical BC routing channel 50-1and 50-2 in an adjacent B1 block 20 that may be employed to couple asignal between adjacent B1 blocks 20 in a first direction. Further, eachhorizontal and vertical BC routing channel 50-1 and 50-2 share a BCextension 58 with a horizontal or vertical BC routing channel 50-1 and50-2 in an adjacent B1 block 20 that may be employed to couple a signalbetween adjacent B1 blocks 20 in a second direction.

The BC extensions 58 provide a one-to-one coupling between theinterconnect conductors of the BC routing channels 50 on either side ofthe BC extensions 58. Accordingly, each BC routing channel 50, in thehorizontal and vertical directions is coupled to the adjacent B1 blocks20 in the corresponding horizontal and vertical directions by a E-tab 52in a first direction along both the horizontal and vertical and in asecond direction along both the horizontal and vertical by a BCextension 58. It should be appreciated that the one-to one couplingbetween the interconnect conductors of the BC routing channels 50 oneither side of the BC extensions 58 may be implemented in a variety ofways known to those of ordinary skill in the art. One example is apassgate controlled by an SRAM bit. Other implementations will bereadily appreciated by those of ordinary skill in the art.

From drawing FIG. 4, it should be appreciated that the LM routingchannels 54-1 through 54-4 pass through the B1 block 20 as two verticalLM routing channels 51-1 and 54-4 and two horizontal LM routing channels54-2 and 54-3, and that the intersections 60 of the vertical andhorizontal LM routing channels 54 are hardwired along a diagonal.

The LM routing channels 54 also provide portions of the two meshes. Theportion of the mesh connection formed along with the BC routing channels50 within a B1 block 20 will be described below. In the portion of themesh formed along with BC routing channels between B1 block 20, each ofthe four LM routing channels 54-1 through 54-4 in each B1 block 20shares an LM extension 62 with an LM routing channel 54-1 through 54-4in an adjacent B1 block 20 in either the corresponding horizontal orvertical direction that may be employed to couple a signal betweenadjacent B1 blocks 20 in either the horizontal or vertical direction.

The LM extensions 62 provide a one-to-one coupling between theinterconnect conductors of the LM routing channels 54 on either side ofthe LM extensions 62. Accordingly, between adjacent B1 blocks 20 thereare two LM routing channels 54 from each of the adjacent B1 blockscoupled by a LM extension 62 on all sides of adjacent B1 blocks 20. Itshould be appreciated that the one-to one coupling between theinterconnect conductors of the LM routing channels 54 on either side ofthe LM extensions 62 may be implemented in a variety of ways known tothose of ordinary skill in the art. One example is a passgate controlledby an SRAM bit. Other implementations will be readily appreciated bythose of ordinary skill in the art.

The DC interconnect conductors 56-1 and 56-2 form a high performancedirect connection between the logic elements in adjacent B1 blocks 20 toimplement data path functions such as counters, comparators, adders andmultipliers. As will be described below, each B1 block 20 includes fourclusters of logic elements. Preferably, each of the four clustersincludes two three input look-up tables (LUT3), a single two-inputlook-up table (LUT2), and a D-type flip-flop (DFF). In the DCinterconnect conductor routing path, each of the DC interconnectconductors 56-1 and 56-2 is multiplexed to an input to a separate one ofthe two LUT3s in each of the four clusters of a B1 block 20. The DCinterconnect conductors 56-1 and 56-2 are connected between verticallyadjacent B1 blocks 20 as is illustrated in FIG. 4.

FIG. 5 illustrates a B1 block 20 according to the present invention ingreater detail. As described above, each B1 block 20 includes fourclusters 70-1 through 70-4 of devices. Each of the four clusters 70-1through 70-4 includes first and second LUT3s 72-1 and 72-2,respectively, a LUT2 74, and a DFF 76. Each of the LUT3s 72 have first,second, and third inputs indicated as “A”, “B”, and “C”, and a singleoutput indicated as “Y”. Each of the LUT2s 74 have first and secondinputs indicated as “A” and “B”, and a single output indicated as “Y”.With a LUT3 72, any three input Boolean logic function may beimplemented, and with a LUT2 74 any two input Boolean logic function maybe implemented.

Each DFF 76 has a data input indicated as “D” and a data outputindicated as “Q”. In each of the clusters 70-1 through 70-4, the outputs“Y” of the LUT3s 72-1 and 72-2 are multiplexed to the input of DFF 76,and further multiplexed with the output of the DFF 76 to form first andsecond outputs of each of the clusters 70-1 through 70-4.

Each DFF 76 also has an enable (EN) input, a set/reset (S/R) input, anda clock (CLK) input. The EN, S/R, and CLK inputs are coupled to utilityrouting channels, a discussion of which is beyond the scope of thisdisclosure, but which is found in U.S. patent application Ser. No.09/255,060, filed Feb. 22, 1999, now abandoned, by hereby incorporatedby reference.

Within the B1 block 20, the horizontal BC routing channel 50-1 isdisposed between the upper clusters 70-1 and 70-2 and the lower clusters70-3 and 70-4, and the vertical BC routing channel 50-2 is disposedbetween the two clusters 70-1 and 70-3 on the left side of the B1 block20 and the two clusters 70-2 and 70-4 on the right side of the B1 block20. It should be appreciated that due to the layout of the B1 blockdepicted in FIG. 4 wherein the input and outputs of the devices in theclusters 70-1 through 70-4 are all depicted horizontally, the horizontalBC routing channel 50-1 forms a diagonally hardwired connection at 78with a routing channel that effectively sends the horizontal BC routingchannel 50-1 in a vertical direction. A diagonally hardwired connection82 pairwise shorts the horizontal and vertical BC routing channels 50-1and 50-2 to provide dual accessibility to the logic resources in the B1block 20 from more than one side.

Disposed between the diagonally hardwired connection 78 and thediagonally hardwired connection 82 is a BC splitting extension 80 whichprovides a one-to-one coupling between the interconnect conductors ofthe horizontal BC routing channel 50-1 on either side of the BCsplitting extension 80. It should be appreciated that the one-to onecoupling between the interconnect conductors of the horizontal BCrouting channel 50-1 on either side of the BC splitting extension 80 maybe implemented in a variety of ways known to those of ordinary skill inthe art. One example is a passgate controlled by an SRAM bit. Otherimplementations will be readily appreciated by those of ordinary skillin the art.

According to the present invention providing the BC splitting extension80 enhances the routability of the horizontal and vertical BC routingchannels 50-1 and 50-2 to the inputs and outputs of the devices in theclusters 70-1 through 70-4. Although the hardwired diagonal connection82 is disposed at the intersections of the interconnect conductors inthe horizontal BC channel 50-1 and the interconnect conductors in thevertical BC channel 50-2 so that all of the interconnect conductors inthe horizontal and vertical BC channels 50-1 and 50-2 are accessible toeach of the four clusters 70-1 through 70-4, the BC splitting extension80 essentially splits, the BC channel 50-1 from the BC channel 50-2.With the BC splitting extension 80, the flexibility for connecting thelogic resources to the M1, M2, and M3 routing channels is improved fromthe flexibility provided simply by the hardwired diagonal connection 82.

The LM routing channels 54-1 and 54-4 pass vertically through the B1block 20 and the LM routing channels 54-2 and 54-3 pass horizontallythrough the B1 block 20. Each of the LM routing channels 54 is segmentedin the B1 block 20 by extensions 84. The extensions 84 provides aone-to-one coupling between the interconnect conductors of the LMrouting channels 54 on either side of the extensions 84. It should beappreciated that the one-to one coupling between the interconnectconductors of the LM routing channel 54 on either side of the extensions84 may be implemented in a variety of ways known to those of ordinaryskill in the art. One example is a passgate controlled by an SRAM bit.Other implementations will be readily appreciated by those of ordinaryskill in the art. Further, as described above, the intersections 60 ofthe vertical LM routing channels 54-1 and 54-4 and horizontal LM routingchannels 54-2 and 54-3 are hardwired along a diagonal.

The horizontal and vertical BC routing channels 50-1 and 50-2, and thetwo vertical LM routing channels 54-1 and 54-4 form intersections withthe inputs and outputs of the LUT2s 74, the inputs of the LUT3s 72-1 and72-2, and the multiplexed outputs of the LUT3s 72-1 and 72-2 and the DFF76 in each of the clusters 70-1 through 70-4.

At some of the intersections formed between the horizontal and verticalBC routing channels 50-1 and 50-2, and the two vertical LM routingchannels 54-1 and 54-4 and the inputs of the LUT2s 74 and the inputs ofthe LUT3s 72-1 and 72-2 are disposed reprogrammable elements. For eachseparate LUT2s 74 and the LUT3s 72-1 and 72-2 input, the reprogrammableelements disposed at selected intersections are preferably passgatescontrolled by SRAM bits that multiplex the horizontal and vertical BCrouting channels 50-1 and 50-2, and the two vertical LM routing channels54-1 and 54-4 with the separate input. Accordingly, at a given time,each separate LUT2s 74 and the LUT3s 72-1 and 72-2 input may be coupledby a reprogrammable element to only one of the interconnect conductorsin the horizontal and vertical BC routing channels 50-1 and 50-2, andthe two vertical LM routing channels 54-1 and 54-4.

At some of the intersections formed between the horizontal and verticalBC routing channels 50-1 and 50-2, and the two vertical LM routingchannels 54-1 and 54-4 and the outputs of the LUT2s 74 and themultiplexed outputs of the LUT3s 72-1 and 72-2 and the DFF 76 aredisposed reprogrammable elements, such as a pass gate controlled by anSRAM bit. These selected intersections, unlike the intersections formedbetween the horizontal and vertical BC routing channels 50-1 and 50-2,and the two vertical LM routing channels 54-1 and 54-4 and the inputs ofthe LUT2s 74 and the inputs of the LUT3s 72-1 and 72-2, are notmultiplexed. Accordingly, at a given time, each separate LUT2 74 outputand LUT3 72-1 and 72-2 and DFF 76 multiplexed output may be coupled toany of the interconnect conductors in the horizontal and vertical BCrouting channels 50-1 and 50-2, and the two vertical LM routing channels54-1 and 54-4 having a reprogrammable element disposed at anintersection. It should be appreciated, that no more than one LUT2 74output and LUT3 72-1 and 72-2 and DFF 76 multiplexed output may becoupled simultaneously to the same interconnect conductor in thehorizontal and vertical BC routing channels 50-1 and 50-2, and the twovertical LM routing channels 54-1 and 54-4.

As described above, each of the DC interconnect conductors 56-1 and 56-2is multiplexed by multiplexers 86-1 and 86-2, respectively, in a serialfashion to an input of a separate one of the two LUT3s in each cluster70-1 through 70-4 of a B1 block 20. For example, in the serialconnection, the DC interconnect conductor 56-1 is multiplexed to the “A”input of the LUT3 72-1 of the cluster 70-1. Next, the “Y” output of theLUT3 72-1 in cluster 70-1 is multiplexed to the “A” input of the LUT372-1 in cluster 70-2. Next, the “Y” output of the LUT3 72-1 in cluster70-2 is multiplexed to the “A” input of the LUT3 72-1 in cluster 70-3.Next, the “Y” output of the LUT3 72-1 in cluster 70-3 is multiplexed tothe “A” input of the LUT3 72-1 in cluster 70-4. Finally, the “Y” outputof the LUT3 72-1 in cluster 70-4 pass out of the B1 block 20, and ismultiplexed to the “A” input of the LUT3 72-1 in cluster 70-2 of the B1block 20 disposed vertically below. The DC interconnect conductors 56-2is similarly connected, except that it is input and output from the LUT372-2 in each of the clusters 70-1 through 70-4.

Turning now to FIG. 6, a more detailed block diagram of the coupling ofBC routing channels 50 to a BC tab 52 is illustrated. According to thepreferred embodiment, the nine interconnect conductors in each of the BCrouting channels 50 are grouped into three groups of three interconnectconductors. Each group of three interconnect conductors is connected toa first side of a Extension Block (EB) 3×3 switch matrix 90. A secondside of each EB 3×3 switch matrix 90 is coupled to the E-tab 52.Further, between adjacent B1 blocks 20, in both the horizontal andvertical directions, the leads on the second side of a first EB3×3switch matrix 90 may be coupled to the leads on the second side ofsecond EB3×3 switch matrix 90 by BC criss-cross extension 92. The opencircles in the criss-cross extension 92, one of which is indicated bythe reference numeral 94, represent a reprogrammable element, preferablya passgate controlled by an SRAM bit.

Because the number of interconnect conductors in the BC routing channels50 are far fewer than the number of interconnect conductors in the M1,M2 and M3 routing channels, the EB3×3 switch matrices 90 and BCcriss-cross extensions 92, according to the present invention,contribute significantly to the routability of the FPGA in theconnection of the BC routing channels 50 to the M1, M2, and M3 routingchannels in the FPGA by providing symmetrization. If all of theinterconnect conductors in the BC routing channels 50 are completelysymmetrized in their connection to M1, M2, and M3 channels, the areaoccupied on the FPGA could be quite large when the number ofinterconnect conductors N is large, because the area occupied bysymmetrizing circuitry increases approximately according to a functionof N². Accordingly, in the preferred embodiment of the presentinvention, the grouping of the interconnect conductors in the BC routingchannels 50 into three groups of three represents a partialsymmetrization of the interconnect conductors in the BC routing channels50 wherein each of the interconnect conductors in a particular group aresymmetrized with respect to one another.

Turning now to FIG. 7, a block diagram of an E-turn 34 according to thepresent invention is illustrated. In general, an E-turn 34 is sparselypopulated at less than 10 percent of the total possibly populated sites.This is a result of CMOS process geometry. A populated bi-directionalE-turn matrix 34 site typically requires a configuration bit and afairly large N-channel MOS pass transistor to offer sufficient currentto drive the capacitance connected to the expressways in the middlelevel of the FPGA architecture. The total number of memory bits passtransistors which can geometrically fit below the area of N vertical andN horizontal minimum width metal interconnect conductors is betweenabout 5 percent and about 10 percent of N². It should be appreciated bythose of ordinary skill in the art that there is a tradeoff between thenumber of populated sites and the performance that can be provided bylarger pass transistors.

In FIG. 7, unlike FIG. 6, the indices for the interconnect conductorswhich are adjacent one another are not sequential. It should also,however, be understood that in FIG. 6, the indices 0-8 for theinterconnect conductors in the BC routing channels 50 are for individualconductors, whereas the indices 0-8 in FIG. 7 are for nine busses, eachof which has nine interconnect conductors. As described above these ninebusses are one M1 routing channel, two M2 routing channels and six M3routing channels. In FIG. 7, it can be observed that there are bothlightly populated sites and heavily populated sites. It should beappreciated that the busses with indices 0, 3, and 6 are heavilypopulated with one another, and that these three indices correspond todifferent EB3×3 switch matrices 90. This also true for indices 1, 4, and7 and for 2, 5, and 8. By heavily populating the busses that correspondto different EB3×3 switch matrices 90, and lightly populating (or notpopulating at all) the busses that correspond to the same EB3×3 switchmatrix 90, the connectivity per populated site is improved. The degreeto which sites are either lightly or heavily populated depends on theamount of population that can be accommodated.

Turning now to FIG. 8, a preferred embodiment of an E-turn 34 accordingto the present invention is illustrated. E-turn 34 includes horizontaland vertical M1 routing channel each having 9 interconnect conductors,first and second horizontal M2 a and M2 b routing channels,respectively, each having 9 interconnect conductors, and first throughsixth horizontal and vertical M3 a through M3 f routing channels,respectively, each having 9 interconnect conductors. Disposed at theintersections of some of the horizontal and vertical M1, M2, and M3routing channels are boxes with various designations, including, D, D+1,D+2, D+3, D−1, D−2, D−3, D3×3, and H. A box designated D hasreprogrammable elements disposed along a diagonal. The designations D+1,D+2, D+3, D−1, D−2, D−3, are for matrices that have the same number ofreprogrammable elements as D, but are either shifted up or down by 1, 2,or 3 units. FIGS. 9A and 9B, boxes illustrate the populated locationsfor D−1 and D+3 matrices respectively. The population of a D3×3 matrixis illustrated in FIG. 9C.

In FIG. 10, the population of the reprogrammable elements in a heavilypopulated (H) matrix is illustrated. The H matrix first and second typesof 3×3 submatrices, one that is fully populated, and another that has isdiagonal depopulated. This matrix has the characteristic that it-canprovide the connection of any 9 signals in a any given order, by achosen imposed order in the other direction.

FIG. 11 is an illustration of the E-turn 34 shown in FIG. 8 with all ofthe reprogrammable elements indicated by solid, dark squares. FIGS.12A-12E illustrate alternative E-turn 34 reprogrammable elementpopulation patterns suitable for use according to the present invention.

While embodiments and applications of this invention have been shown anddescribed, it would be apparent to those skilled in the art that manymore modifications than mentioned above are possible without departingfrom the inventive concepts herein. The invention, therefore, is not tobe restricted except in the spirit of the appended claims.

1. A method of improving connectivity in a field-programmable gate array(FPGA) having a plurality of blocks, each block configured to performlogic functions, a plurality of conductors coupled between each block, aplurality of busses each coupled between each conductor and each block,the method comprising: heavily populating a first and second set of theplurality busses with programmable elements; lightly populating a thirdand fourth set of the plurality busses with programmable elements; andpositioning the third and fourth sets between the first and second sets.2. A system for improving connectivity in a field-programmable gatearray (FPGA) comprising: a plurality of blocks, each block configured toperform logic functions; a plurality of conductors coupled between eachblock and configured to convey signals between the blocks; and aplurality of busses coupled between each of the conductors and each ofthe blocks, the busses configured to provide programmable elementsbetween each of the blocks and each of the conductors, wherein a firstand second set of busses is heavily populated with programmable elementsand a third and fourth set of busses is lightly populated withprogrammable elements and the third and fourth set of busses arepositioned between the first and second set of busses.